#!/bin/bash
#=============HEADER=============================================================|
#AUTOR:
# Jefferson Rocha <lrcjefferson@gmail.com>
#
#PROGRAMA:
# Slack-Conf
#
#DESCRIÇÃO:
# vai aqui o seu texto
#
#LICENÇA:
#
#CHANGELOG:
#
#NEWS:
#================================================================================|

# Váriaveis-----------------#
program_name="Slackconf"
version="1.0"
msg="$program_name versão $version"
user_root=$(echo $UID)
version_slackware=$(cat /etc/slackware-version)
verify=$(cat /etc/slackware-version | egrep -o [Ss]lackware)
exe_ifconf=$(ifconfig | grep ^e. | cut -d ':' -f1)
#----------------------------#

# FUNÇÕES------------------#
function others_options {

case $? in
 1) exit ;;
 255) clear ; break ;;
 2) ;; #Help
esac
}

function sleeping {
sleep 3s
}

# Em caso de erro geral!
function ERROR {
   dialog --stdout \
          --title "Erro!" \
          --backtitle "$msg" \
          --msgbox "Houve um erro!" 0 0
}
#---------------------------#

# É root?
[[ $user_root -ne 0 ]] && \
 dialog --stdout \
        --title "ERRO!"  \
        --backtitle "$msg" \
        --msgbox "Precisa estar logado como root!" 5 40 && exit

# Conferindo se a distro é Slackware, se não for tchau!
if [[ ! $verify =~ [Ss]lackwa.e ]]; then
  dialog --stdout \
         --title "ERRO!" \
         --backtitle "$msg" \
         --msgbox "Roda somente nas versões do Slackware." 5 45 && exit
fi

# Laço para o menu
while : ; do
menu_principal=$(
  dialog --stdout \
      --title "Configurações do $version_slackware" \
      --backtitle "$msg" \
      --help-button \
      --ok-label "Executar" \
      --cancel-label "Cancelar" \
      --menu "Escolha as opções!"  \
      0 0 0 \
      Teclado "Configurar Abnt2"   \
      Rede "Configurar Rede $exe_ifconf"  \
      Hora "Configurar Hora" \
      Mirrors "Configurar Mirrors"
)
# Se apertou 'cancelar' sai!
if [[ $? -eq 1 ]]; then
 clear ; exit 0
fi



case $menu_principal	in
   Teclado)
        setxkbmap -model abnt2 -layout br
         if [[ $? -ne 0 ]]; then
            ERROR
         else
           dialog --stdout \
                   --title "Configuração teclado" \
                   --backtitle "$program_name versão $version" \
                   --infobox "O teclado foi Configurado !!!" 0 0 ;sleeping
         fi ;;

   Rede)
       dhclient $exe_ifconf
         if [[ $? -ne 0 ]]; then
            ERROR
         else
            dialog --stdout \
                   --backtitle "$program_name versão $version" \
                   --title "Configuração Rede" \
                   --infobox "A rede foi configurada !!!" 0 0 ; sleeping
         fi ;;


   Hora)
       dialog --stdout \
              --title "Configuração Horário" \
              --backtitle "$program_name versão $version" \
              --infobox "Configurando !!!" 0 0
      ntpdate ntp.br
             if [[ $? -ne 0 ]]; then
               ERROR
             else
               dialog --stdout \
	              --title "Configuração Horário" \
                --backtitle "$msg" \
                --infobox "A configuração foi Concluída !!!" 0 0 ;sleeping
             fi ;;

   Mirrors)
        option_mirrors=$(dialog --stdout \
               --title "Configuração Mirrors" \
               --backtitle "$program_name versão $version" \
               --menu "Escolha:" \
               0 0 0 \
               Current "Versão mais recente dos pacotes" \
               Stable "Versão totalmente estável" )

        case $option_mirrors in
          Current)
                 dialog --stdout \
                        --title "AVISO!" \
                        --backtitle "$program_name versão $version" \
                        --yesno "\nVocê está preste a definir o mirror para Current, Continuar?\n\n" 0 0

                if [[ $? -ne 0 ]]; then
                  ERROR
                else
                    sed -i 's,# ftp://ftp.slackware-brasil.com.br/slackware64-current, ftp://ftp.slackware-brasil.com.br/slackware64-current,' /etc/slackpkg/mirrors
                      dialog --stdout \
                             --title "Concluído" \
                             --backtitle "$program_name versão $version" \
                             --infobox "Mirror Atualizado para Current !!" 0 0 ;sleeping
                  fi
        esac

;;


esac # Case options_mirrors
done # While menu principal
